package com.ruoyi.web.controller.mall.goodsGoods.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.web.controller.mall.goodsClass.domain.GoodsClass;
import com.ruoyi.web.controller.mall.goodsImages.domain.GoodsImages;
import com.ruoyi.web.controller.mall.goodsProduct.domain.GoodsProduct;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 商品对象 goods_goods
 * 
 * @author ruoyi
 * @date 2021-01-18
 */
public class GoodsGoods //extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private String id;

    /** 商家id */
    @Excel(name = "商家id")
    private String shopId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String name;

    /** 商品标题 */
    @Excel(name = "商品标题")
    private String title;

    /** 商品分类 */
    @Excel(name = "商品分类")
    private String classId;

    /** 商品类型 */
    @Excel(name = "商品类型")
    private String typeId;

    /** 商品品牌 */
    @Excel(name = "商品品牌")
    private String brandId;

    /** 商品主图 */
    @Excel(name = "商品主图")
    private String imgurl;

    /** 商品详情 */
    @Excel(name = "商品详情")
    private String note;

    /** 属性详情 */
    @Excel(name = "属性详情")
    private String prop;

    /** 规格详情 */
    @Excel(name = "规格详情")
    private String spec;

    /** 参数详情 */
    @Excel(name = "参数详情")
    private String param;

    /** 启用规格 */
    @Excel(name = "启用规格")
    private Integer hasSpec;

    /** 计量单位 */
    @Excel(name = "计量单位")
    private String unit;

    /** 商品类别(0默认普通1服务) */
    @Excel(name = "商品类别(0默认普通1服务)")
    private Integer category;

    /** 是否下架(0上架架,1下架) */
    @Excel(name = "是否下架(0上架架,1下架)")
    private Integer disabled;

    /** 上架时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "上架时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date upAt;

    /** 下架时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下架时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date downAt;

    /** 是否必须留言(0必须1不是必须) */
    @Excel(name = "是否必须留言(0必须1不是必须)")
    private Integer message;

    /** 浏览量 */
    @Excel(name = "浏览量")
    private Integer numView;

    /** 评论量 */
    @Excel(name = "评论量")
    private Integer numComment;

    /** 销售量 */
    @Excel(name = "销售量")
    private Integer numSale;

    /** 周销售量 */
    @Excel(name = "周销售量")
    private Integer numSaleWeek;

    /** 售后服务 */
    @Excel(name = "售后服务")
    private String afterSale;

    /** 排序字段 */
    @Excel(name = "排序字段")
    private Integer location;

    /** 创建用户id */
    @Excel(name = "创建用户id")
    private Long userIdCreate;

    /** 首页推荐 0：不推荐，1：推荐 */
    @Excel(name = "首页推荐 0：不推荐，1：推荐")
    private Integer recomSy;

    /** 详情推荐 0：不推荐，1：推荐 */
    @Excel(name = "详情推荐 0：不推荐，1：推荐")
    private Integer recomXq;

    /** 购物车推荐 0：不推荐，1：推荐 */
    @Excel(name = "购物车推荐 0：不推荐，1：推荐")
    private Integer recomGwc;

    /** 运费险 */
    @Excel(name = "运费险")
    private BigDecimal costMoney;

    /** 是否开发票（0默认1开票） */
    @Excel(name = "是否开发票", readConverterExp = "0=默认1开票")
    private Integer isInvoice;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date gmtCreate;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date gmtModified;

    /** 删除标记0-显示,1-删除 */
    private Integer delFlag;

    private Integer pageNum;
    private Integer pageSize;

    private String className;
    private String typeName;
    private Integer productNum;
    private GoodsProduct goodsProduct;
//    private List<GoodsClass> classList;
    private List<GoodsImages> bannerList;
    private List<GoodsImages> detailImgList;
    private List<GoodsProduct> productList;


    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public Integer getProductNum() {
        return productNum;
    }

    public void setProductNum(Integer productNum) {
        this.productNum = productNum;
    }

    public GoodsProduct getGoodsProduct() {
        return goodsProduct;
    }

    public void setGoodsProduct(GoodsProduct goodsProduct) {
        this.goodsProduct = goodsProduct;
    }

    public List<GoodsImages> getBannerList() {
        return bannerList;
    }

    public void setBannerList(List<GoodsImages> bannerList) {
        this.bannerList = bannerList;
    }

    public List<GoodsImages> getDetailImgList() {
        return detailImgList;
    }

    public void setDetailImgList(List<GoodsImages> detailImgList) {
        this.detailImgList = detailImgList;
    }

    public List<GoodsProduct> getProductList() {
        return productList;
    }

    public void setProductList(List<GoodsProduct> productList) {
        this.productList = productList;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setShopId(String shopId) 
    {
        this.shopId = shopId;
    }

    public String getShopId() 
    {
        return shopId;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }
    public void setClassId(String classId) 
    {
        this.classId = classId;
    }

    public String getClassId() 
    {
        return classId;
    }
    public void setTypeId(String typeId) 
    {
        this.typeId = typeId;
    }

    public String getTypeId() 
    {
        return typeId;
    }
    public void setBrandId(String brandId) 
    {
        this.brandId = brandId;
    }

    public String getBrandId() 
    {
        return brandId;
    }
    public void setImgurl(String imgurl) 
    {
        this.imgurl = imgurl;
    }

    public String getImgurl() 
    {
        return imgurl;
    }
    public void setNote(String note) 
    {
        this.note = note;
    }

    public String getNote() 
    {
        return note;
    }
    public void setProp(String prop) 
    {
        this.prop = prop;
    }

    public String getProp() 
    {
        return prop;
    }
    public void setSpec(String spec) 
    {
        this.spec = spec;
    }

    public String getSpec() 
    {
        return spec;
    }
    public void setParam(String param) 
    {
        this.param = param;
    }

    public String getParam() 
    {
        return param;
    }
    public void setHasSpec(Integer hasSpec) 
    {
        this.hasSpec = hasSpec;
    }

    public Integer getHasSpec() 
    {
        return hasSpec;
    }
    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }
    public void setCategory(Integer category) 
    {
        this.category = category;
    }

    public Integer getCategory() 
    {
        return category;
    }
    public void setDisabled(Integer disabled) 
    {
        this.disabled = disabled;
    }

    public Integer getDisabled() 
    {
        return disabled;
    }
    public void setUpAt(Date upAt) 
    {
        this.upAt = upAt;
    }

    public Date getUpAt() 
    {
        return upAt;
    }
    public void setDownAt(Date downAt) 
    {
        this.downAt = downAt;
    }

    public Date getDownAt() 
    {
        return downAt;
    }
    public void setMessage(Integer message) 
    {
        this.message = message;
    }

    public Integer getMessage() 
    {
        return message;
    }
    public void setNumView(Integer numView)
    {
        this.numView = numView;
    }

    public Integer getNumView()
    {
        return numView;
    }
    public void setNumComment(Integer numComment)
    {
        this.numComment = numComment;
    }

    public Integer getNumComment()
    {
        return numComment;
    }
    public void setNumSale(Integer numSale)
    {
        this.numSale = numSale;
    }

    public Integer getNumSale()
    {
        return numSale;
    }
    public void setNumSaleWeek(Integer numSaleWeek)
    {
        this.numSaleWeek = numSaleWeek;
    }

    public Integer getNumSaleWeek()
    {
        return numSaleWeek;
    }
    public void setAfterSale(String afterSale) 
    {
        this.afterSale = afterSale;
    }

    public String getAfterSale() 
    {
        return afterSale;
    }
    public void setLocation(Integer location)
    {
        this.location = location;
    }

    public Integer getLocation()
    {
        return location;
    }
    public void setUserIdCreate(Long userIdCreate) 
    {
        this.userIdCreate = userIdCreate;
    }

    public Long getUserIdCreate() 
    {
        return userIdCreate;
    }
    public void setRecomSy(Integer recomSy) 
    {
        this.recomSy = recomSy;
    }

    public Integer getRecomSy() 
    {
        return recomSy;
    }
    public void setRecomXq(Integer recomXq) 
    {
        this.recomXq = recomXq;
    }

    public Integer getRecomXq() 
    {
        return recomXq;
    }
    public void setRecomGwc(Integer recomGwc) 
    {
        this.recomGwc = recomGwc;
    }

    public Integer getRecomGwc() 
    {
        return recomGwc;
    }
    public void setCostMoney(BigDecimal costMoney)
    {
        this.costMoney = costMoney;
    }

    public BigDecimal getCostMoney()
    {
        return costMoney;
    }
    public void setIsInvoice(Integer isInvoice) 
    {
        this.isInvoice = isInvoice;
    }

    public Integer getIsInvoice() 
    {
        return isInvoice;
    }
    public void setGmtCreate(Date gmtCreate) 
    {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtCreate() 
    {
        return gmtCreate;
    }
    public void setGmtModified(Date gmtModified) 
    {
        this.gmtModified = gmtModified;
    }

    public Date getGmtModified() 
    {
        return gmtModified;
    }
    public void setDelFlag(Integer delFlag) 
    {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("shopId", getShopId())
            .append("name", getName())
            .append("title", getTitle())
            .append("classId", getClassId())
            .append("typeId", getTypeId())
            .append("brandId", getBrandId())
            .append("imgurl", getImgurl())
            .append("note", getNote())
            .append("prop", getProp())
            .append("spec", getSpec())
            .append("param", getParam())
            .append("hasSpec", getHasSpec())
            .append("unit", getUnit())
            .append("category", getCategory())
            .append("disabled", getDisabled())
            .append("upAt", getUpAt())
            .append("downAt", getDownAt())
            .append("message", getMessage())
            .append("numView", getNumView())
            .append("numComment", getNumComment())
            .append("numSale", getNumSale())
            .append("numSaleWeek", getNumSaleWeek())
            .append("afterSale", getAfterSale())
            .append("location", getLocation())
            .append("userIdCreate", getUserIdCreate())
            .append("recomSy", getRecomSy())
            .append("recomXq", getRecomXq())
            .append("recomGwc", getRecomGwc())
            .append("costMoney", getCostMoney())
            .append("isInvoice", getIsInvoice())
            .append("gmtCreate", getGmtCreate())
            .append("gmtModified", getGmtModified())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
